package br.com.vti.sisp_sicrim.antigo.controller.tela;

import java.text.SimpleDateFormat;
import java.util.Calendar;

import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.controller.programa.FuncoesGerais;
import br.com.vti.sisp_sicrim.antigo.model.DidCadastro;
import br.com.vti.sisp_sicrim.antigo.model.Sislct01;
import br.com.vti.sisp_sicrim.antigo.model.Sislct02;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe responsavel por encapsular o tratamento e as consistencias da tela
 * Idcta991
 * 
 * @author Incode - Data: mai/2014
 * 
 */
public class Idcta991 {
	private boolean enviada = false;
	private String pagina = "/resources/antigo/jsp/Idcta991.jsp";
	private String versao;
	private String operacao;
	private int dataCorrente;
	private String horaCorrente;
	private int iNumpos;
	private long iNumpro;
	private int iOrdens;
	private long iRegger;
	private long iRegant;
	private String iUfrant;
	private String iNomide;
	private String iNomant;
	private String iNompai;
	private String iNommae;
	private int iGrauin;
	private int dnas;
	private int mnas;
	private int anas;
	private int iComuna;
	private int iCodsex;
	private int iNacion;
	private int iNumpor;
	private int iAnopor;
	private int iCodpor;
	private int dnat;
	private int mnat;
	private int anat;
	private long iNumcpf;
	private int iEstciv;
	private int iTipdoc;
	private String iNumcer;
	private String pais;
	private String iNumfol;
	private String iNumliv;
	private int dexp;
	private int mexp;
	private int aexp;
	private String iVcivil;
	private String iZonaof;
	private String iNomcar;
	private int iComuex;
	private int iCartra;
	private long iNserie;
	private long iTitele;
	private String iUftitu;
	private String iNsecao;
	private String iNuzona;
	private long iCermil;
	private String iRegiao;
	private long iPrtcnh;
	private String iUfpcnh;
	private int iTipsan;
	private int iFatorh;
	private String iEndere;
	private String iNumres;
	private String iBairro;
	private String iComple;
	private int iCodcep;
	private int iComuen;
	private String empresa;
	private String nomeClasse;
	private String mensagem = "";
	private String funcao = "0";
	private String campofocus = "dinideregger";
	private String navegar = "";
	private Boolean temMensagem = false;
	private Result result;
	private Sessao sessao;
	FuncoesGerais funcoes = new FuncoesGerais();
	// Classes views
	DidCadastro did = new DidCadastro();
	DidCadastro viu = new DidCadastro();
	// Classes includes
	Sislct01 sislct01 = new Sislct01();
	Sislct02 sislct02 = new Sislct02();

	public Idcta991() {
		inicializar(false);
	}

	public Idcta991(boolean primeiraVez, Sessao sessao) {
		this.sessao = sessao;
		inicializar(primeiraVez);
	}

	public void inicializar(boolean primeiraVez) {
		if (primeiraVez) {
			versao = "0";
			operacao = "";
			dataCorrente = 0;
			iNumpos = 0;
			iNumpro = 0;
			iOrdens = 0;
			iRegger = 0;
			iRegant = 0;
			iUfrant = "";
			iNomide = "";
			iNomant = "";
			iNompai = "";
			iNommae = "";
			iGrauin = 0;
			dnas = 0;
			mnas = 0;
			anas = 0;
			iComuna = 0;
			iCodsex = 0;
			iNacion = 0;
			iNumpor = 0;
			iAnopor = 0;
			iCodpor = 0;
			dnat = 0;
			mnat = 0;
			anat = 0;
			iNumcpf = 0;
			iEstciv = 0;
			iTipdoc = 0;
			iNumcer = "";
			pais = "";
			iNumfol = "";
			iNumliv = "";
			dexp = 0;
			mexp = 0;
			aexp = 0;
			iVcivil = "";
			iZonaof = "";
			iNomcar = "";
			iComuex = 0;
			iCartra = 0;
			iNserie = 0;
			iTitele = 0;
			iUftitu = "";
			iNsecao = "";
			iNuzona = "";
			iCermil = 0;
			iRegiao = "";
			iPrtcnh = 0;
			iUfpcnh = "";
			iTipsan = 0;
			iFatorh = 0;
			iEndere = "";
			iNumres = "";
			iBairro = "";
			iComple = "";
			iCodcep = 0;
			iComuen = 0;
			empresa = "";
			nomeClasse = "";
			empresa = sessao.getSisgsisp().getEmpresa();
			operacao = sessao.getSisgsisp().getOperacao();
			versao = sessao.getSisgsisp().getVersao();
		}
		horaCorrente = new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()); // *TIMX
	}

	public boolean receberTela(boolean primeiraVez, Result result) throws Exception {
		// faz o tratamento das criticas necessarias para os dados da tela
		// recebida
		this.result = result;
		temMensagem = false;
		if (!primeiraVez) {
			return validar();
		} else {
			return true;
		}
	}

	public void enviarTela(boolean primeiraVez, Result result, String origem) {
		this.enviada = true;
		// rotina para enviar a tela
		// caso esteja setado valores para acoesFinais, executa as classes
		// correspondentes
		this.result = result;
		if (UtilBean.acoesFinais != null && !UtilBean.acoesFinais.isEmpty()) {
			UtilBean.processaAcao();
		} else {
			enviar(result, origem);
		}
	}

	public void enviar(Result result, String origem) {
		// redicionar para o jsp correspondente
		UtilBean.redireciona(pagina, result, origem);
	}

	public void enviarMensagem(String campo, String mensagem) {
		// formatar a mensagem de erro, posicionar no campo informa
		if (campo != null) {
			campofocus = campo;
		} else {
			campofocus = "";
		}
		this.mensagem = mensagem;
		temMensagem = true;
		// enviar(result, origem);
	}

	public boolean validar() throws Exception {
		// validar os campos recebidos da tela
		UtilBean.funcao = this.funcao;
		ValidarAexp();
		if (temMensagem) {
			return false;
		}
		ValidarAnat();
		if (temMensagem) {
			return false;
		}
		ValidarDexp();
		if (temMensagem) {
			return false;
		}
		ValidarDnat();
		if (temMensagem) {
			return false;
		}
		ValidarFuncao();
		if (temMensagem) {
			return false;
		}
		ValidarIAnopor();
		if (temMensagem) {
			return false;
		}
		ValidarIBairro();
		if (temMensagem) {
			return false;
		}
		ValidarICodpor();
		if (temMensagem) {
			return false;
		}
		ValidarICodsex();
		if (temMensagem) {
			return false;
		}
		ValidarIComuen();
		if (temMensagem) {
			return false;
		}
		ValidarIComuex();
		if (temMensagem) {
			return false;
		}
		ValidarIComuna();
		if (temMensagem) {
			return false;
		}
		ValidarIEndere();
		if (temMensagem) {
			return false;
		}
		ValidarIEstciv();
		if (temMensagem) {
			return false;
		}
		ValidarIFatorh();
		if (temMensagem) {
			return false;
		}
		ValidarINacion();
		if (temMensagem) {
			return false;
		}
		ValidarINsecao();
		if (temMensagem) {
			return false;
		}
		ValidarINumcer();
		if (temMensagem) {
			return false;
		}
		ValidarINumcpf();
		if (temMensagem) {
			return false;
		}
		ValidarINumfol();
		if (temMensagem) {
			return false;
		}
		ValidarINumliv();
		if (temMensagem) {
			return false;
		}
		ValidarINumpor();
		if (temMensagem) {
			return false;
		}
		ValidarINumpro();
		if (temMensagem) {
			return false;
		}
		ValidarINumres();
		if (temMensagem) {
			return false;
		}
		ValidarINuzona();
		if (temMensagem) {
			return false;
		}
		ValidarIOrdens();
		if (temMensagem) {
			return false;
		}
		ValidarIRegant();
		if (temMensagem) {
			return false;
		}
		ValidarIRegiao();
		if (temMensagem) {
			return false;
		}
		ValidarITipdoc();
		if (temMensagem) {
			return false;
		}
		ValidarITipsan();
		if (temMensagem) {
			return false;
		}
		ValidarIUfpcnh();
		if (temMensagem) {
			return false;
		}
		ValidarIUfrant();
		if (temMensagem) {
			return false;
		}
		ValidarIUftitu();
		if (temMensagem) {
			return false;
		}
		ValidarMexp();
		if (temMensagem) {
			return false;
		}
		ValidarMnat();
		if (temMensagem) {
			return false;
		}
		ValidarOperacao();
		if (temMensagem) {
			return false;
		}
		sessao.getSisgsisp().setEmpresa(this.empresa);
		sessao.getSisgsisp().setOperacao(this.operacao);
		sessao.getSisgsisp().setVersao(this.versao);
		return true;
	}

	private void ValidarFuncao() {
		// Consist�ncia F00funcao
		if (!(UtilBean.funcao.equals(UtilBean.ctt_processa) || UtilBean.funcao.equals(UtilBean.ctt_ajuda))) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarOperacao() {
		// Consist�ncia F00OPERACAO
		if (!operacao.equals("ADC")) {
			funcoes.sissm001(result, sessao);
		}
	}

	private void ValidarINumpro() {
		// Consist�ncia F00I-NUMPRO
		if (iNumpro > 0 && operacao.equals("AIC")) {
			// Par�grafo: h1()
			while (did.pesquisaNumeroProtocolo(iNumpro)) { 
				if (viu.getNumeroRg() != iRegger) {
					enviarMensagem(null, "PROTOCOLO JA CADASTRADO C/RG:1:" + did.getNumeroRg());
					return;
				}
			}
		}
	}

	private void ValidarIOrdens() {
		// Consist�ncia F00I-ORDENS
		Sislct01 sislct01 = new Sislct01();
		// VOLTA DA PESQUISA
		if (operacao.equals("AIC")) {
			sislct01.tt1 = 212;
			sislct01.cc1 = iOrdens;

			funcoes.sisnct01(sislct01.tt1, sislct01.cc1, sislct01.vt1); 
			// IF VT1 = "@"
			// REINPUT *166 MARK *& ALARM
			if (sislct01.vt1.equals("@"))
			// END-IF
			{
				enviarMensagem(null, "INFORME NUMERO VIA");
				return;
			}
		}
	}

	private void ValidarIRegant() {
		// Consist�ncia F00I-REGANT
		if (!iUfrant.equals("  ") && iRegant == 0 && operacao.equals("AIC")) {
			enviarMensagem(null, "");
			return;
		}
		if (iRegant != 0) {
			while (viu.pesquisaRegistroAnterior(iRegant)) { 
				if (viu.getNomeIdent() != iNomide && viu.getNumeroRg() != iRegger) {
					enviarMensagem(null, "RG :1: COM MESMO NUMERO ANTERIOR" + viu.getNumeroRg());
					return;
				}
			}
		}
	}

	private void ValidarIUfrant() {
		// Consist�ncia F00I-UFRANT
		Sislct02 sislct02 = new Sislct02();
		// VOLTA DA PESQUISA
		if (iRegant > 0 && operacao.equals("AIC")) {
			sislct02.tt2 = 9;
			sislct02.cc2 = iUfrant;

			funcoes.sisnct02(sislct02.tt2, sislct02.cc2, sislct02.vt2); 
			if (sislct02.vt2.equals("@")) {
				enviarMensagem(null, "AC AL AM AP BA CE DF ES GO MA MT MS MG PA PB PE PI PR RN RS RO RR SC SP SE TO");
				return;
			}
		}
	}

	private void ValidarIComuna() {
		// Consist�ncia F00I-COMUNA
		Sislct01 sislct01 = new Sislct01();
		String operacao;
		int codtab;
		String descri;
		if (iNacion == 2 || iNacion == 3) {
			if (iComuna != 0) {
				enviarMensagem(null, "NAO INFORME O MUNICIPIO. NACIONALIDADE 2 OU 3.");
				return;
			}
		}
		if (iNacion == 1 || iComuna > 0) {
			sislct01.tt1 = 001;
			sislct01.cc1 = iComuna;

			funcoes.sisnct01(sislct01.tt1, sislct01.cc1, sislct01.vt1); 
			if (sislct01.vt1.equals("@"))
			// FETCH RETURN "IDCTAB01" OPERACAO CODTAB DESCRI LISTA TAB 001
			{
				sislct01.tt1 = 209;
				// CALLNAT "IDCTABX1" OPERACAO CODTAB DESCRI LISTA TAB 001

				funcoes.sisnct01(sislct01.tt1, sislct01.cc1, sislct01.vt1); 
				if (sislct01.vt1.equals("@")) {
					enviarMensagem(null, "");
					return;
				}
				pais = "E";
			}
		}
	}

	private void ValidarICodsex() {
		// Consist�ncia F00I-CODSEX
		Sislct01 sislct01 = new Sislct01();
		// VOLTA DA PESQUISA
		sislct01.tt1 = 907;
		sislct01.cc1 = iCodsex;

		funcoes.sisnct01(sislct01.tt1, sislct01.cc1, sislct01.vt1); 
		if (sislct01.vt1.equals("@")) {
			enviarMensagem(null, "1-Masculino, 2-Feminino");
			return;
		}
	}

	private void ValidarINacion() throws Exception {
		// Consist�ncia F00I-NACION
		Sislct01 sislct01 = new Sislct01();
		// VOLTA DA PESQUISA
		if (!UtilBean.validarMascara(iNacion, "1-5")) {
			enviarMensagem(null, "1-Brasileiro,2-Naturalizado,3-Portugues,4-Filho de BR Nasc.Estrang,5-Estrang");
			return;
		}
		sislct01.tt1 = 917;
		sislct01.cc1 = iNacion;

		funcoes.sisnct01(sislct01.tt1, sislct01.cc1, sislct01.vt1); 
		if (sislct01.vt1.equals("@")) {
			enviarMensagem(null, "1-Brasileiro,2-Naturalizado,3-Portugues,4-Filho de BR Nasc.Estrang,5-Estrang");
			return;
		}
	}

	private void ValidarINumpor() {
		// Consist�ncia F00I-NUMPOR
		if (iNacion == 2 || iNacion == 3 && iNumpor == 0) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarIAnopor() throws Exception {
		// Consist�ncia F00I-ANOPOR
		if (iNacion == 2 || iNacion == 3) {
			if (!UtilBean.validarMascara(iAnopor, "yyyy")) {
				enviarMensagem(null, "");
				return;
			}
			if (iAnopor < 1900) {
				enviarMensagem(null, "");
				return;
			}
			if (iAnopor > (UtilBean.obtemDataCorrente() / 10000)) {
				enviarMensagem(null, "");
				return;
			}
		}
	}

	private void ValidarICodpor() {
		// Consist�ncia F00I-CODPOR
		Sislct01 sislct01 = new Sislct01();
		// VOLTA DA PESQUISA
		if (iNacion != 1 || iCodpor > 0) {
			sislct01.tt1 = 209;
			sislct01.cc1 = iCodpor;

			funcoes.sisnct01(sislct01.tt1, sislct01.cc1, sislct01.vt1); 
			if (sislct01.vt1.equals("@")) {
				enviarMensagem(null, "");
				return;
			}
		}
	}

	private void ValidarDnat() throws Exception {
		// Consist�ncia F00DNAT
		if (iNacion == 2 || iNacion == 3 && !UtilBean.validarMascara(dnat, "dd")) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarMnat() throws Exception {
		// Consist�ncia F00MNAT
		if (iNacion == 2 || iNacion == 3 && !UtilBean.validarMascara(mnat, "MM")) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarAnat() {
		// Consist�ncia F00ANAT
		int dat;
		int nas;
		if (iNacion == 2 || iNacion == 3) {
			if (anat < 1850) {
				enviarMensagem(null, "");
				return;
			}
			dat = (anat * 10000) + (mnat * 100) + dnat;
			if (dat > UtilBean.obtemDataCorrente()) {
				enviarMensagem(null, "");
				return;
			}
			nas = (anas * 10000) + (mnas * 100) + dnas;
			if (dat < nas) {
				enviarMensagem(null, "");
				return;
			}
		}
	}

	private void ValidarINumcpf() throws Exception {
		// Consist�ncia F00I-NUMCPF
		long cpf;
		int dv1;
		int dv2;
		if (iNumcpf > 0) {
			cpf = iNumcpf;
			if (!UtilBean.validarMascara(iNumcpf, "99999999999")) {
				enviarMensagem(null, "NUMERO CPF INCOMPLETO");
				return;
			}

			funcoes.sisncpf(cpf); 
			if (funcoes.dv1 != UtilBean.extraiDigitos(cpf, 11, 10, 1)) {
				enviarMensagem(null, "");
				return;
			}
			if (funcoes.dv2 != UtilBean.extraiDigitos(cpf, 11, 11, 1)) {
				enviarMensagem(null, "");
				return;
			}
			while (did.pesquisaNumeroCpf(iNumcpf)) { 
				if (did.getNumeroRg() != iRegger) {
					enviarMensagem(null, "CPF CADASTRADO COM RG:1:" + did.getNumeroRg());
					return;
				}
			}
		}
	}

	private void ValidarIEstciv() {
		// Consist�ncia F00I-ESTCIV
		Sislct01 sislct01 = new Sislct01();
		// VOLTA DA PESQUISA
		sislct01.tt1 = 202;
		sislct01.cc1 = iEstciv;
		// Tabela de Estado Civil

		funcoes.sisnct01(sislct01.tt1, sislct01.cc1, sislct01.vt1); 
		if (sislct01.vt1.equals("@")) {
			enviarMensagem(null, "1-Solteiro,2-Casado,3-Divorciado,4-Viuvo,5-Sep.Judicial,6-Desquitado,7-Concubinato");
			return;
		}
		if (iCodsex == 2 && iEstciv == 2) {
			if (iNomant.trim().equals("")) {
				enviarMensagem("iNomant", "INFORME NOME ANTERIOR");
				return;
			}
		}
	}

	private void ValidarITipdoc() {
		// Consist�ncia F00I-TIPDOC
		Sislct01 sislct01 = new Sislct01();
		// VOLTA DA PESQUISA
		sislct01.tt1 = 211;
		sislct01.cc1 = iTipdoc;
		// Tabela de Tipo de Documento Apresentado

		funcoes.sisnct01(sislct01.tt1, sislct01.cc1, sislct01.vt1); 
		if (sislct01.vt1.equals("@")) {
			enviarMensagem(null, "1-Nascimento,2-Casamento,3-Naturalizacao,4-Igualdade,Dir.Deveres,5-Separacao,6-Divorciado,7-Desquitado");
			return;
		}
		switch (iNacion) {
		// IF I-NACION = 1 || I-NACION == 4 ???????
		case 1: {
			if (!(iTipdoc == 1 || iTipdoc == 2 || iTipdoc == 5 || iTipdoc == 6)) {
				enviarMensagem(null, "TIPO DOC. INCOMPATIVEL COM NACIONALIDADE");
				return;
			}
			break;
		}
		case 2: {
			if (!(iTipdoc == 3 || iTipdoc == 4)) {
				enviarMensagem(null, "TIPO DOC. INCOMPATIVEL COM NACIONALIDADE");
				return;
			}
			break;
		}
		case 3: {
			if (iTipdoc != 4) {
				enviarMensagem(null, "TIPO DOC. INCOMPATIVEL COM NACIONALIDADE");
				return;
			}
			break;
		}
		case 4: {
			if (iTipdoc == 1 || iTipdoc == 2) {
				break;
			} else {
				enviarMensagem(null, "TIPO DOC. INCOMPATIVEL COM NACIONALIDADE");
				return;
			}
		}
		default: {
			break;
		}
		}
		if (iNacion == 1 || iNacion == 4) {
			if (iCodsex == 2 && iTipdoc == 2) {
				if (iNomant.trim().equals("")) {
					enviarMensagem("iNomant", "INFORME NOME ANTERIOR");
					return;
				}
			}
			if (iTipdoc == 5 && iEstciv == 5 && iCodsex == 2) {
				if (iNomant.trim().equals("")) {
					enviarMensagem("iNomant", "INFORME NOME ANTERIOR");
					return;
				}
			}
			if (iTipdoc == 1 && iEstciv == 1 && iCodsex == 2) {
				if (!iNomant.trim().equals("")) {
					enviarMensagem("iEstciv", "ESTADO CIVIL E TIPO DE DOCUMENTO INVALIDO");
					return;
				}
			}
			if (iTipdoc == 6 && iEstciv == 3 && iCodsex == 2) {
				if (iNomant.trim().equals("")) {
					enviarMensagem("iNomant", "INFORME NOME ANTERIOR");
					return;
				}
			}
		}
	}

	private void ValidarINumcer() {
		// Consist�ncia F00I-NUMCER
		if (iNacion == 1 || iNacion == 4) {
			if (iNumcer.trim().equals("")) {
				enviarMensagem(null, "");
				return;
			}
		}
	}

	private void ValidarINumfol() {
		// Consist�ncia F00I-NUMFOL
		if (iNacion == 1 || iNacion == 4 && iNumfol.trim().equals("")) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarINumliv() {
		// Consist�ncia F00I-NUMLIV
		if (iNacion == 1 || iNacion == 4 && iNumliv.trim().equals("")) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarDexp() {
		// Consist�ncia F00DEXP
		if (dexp == 0) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarMexp() {
		// Consist�ncia F00MEXP
		if (mexp == 0) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarAexp() throws Exception {
		// Consist�ncia F00AEXP
		int dt1;
		int dt2;
		if (aexp < 1800) {
			enviarMensagem(null, "");
			return;
		}
		dt1 = (anas * 10000) + (mnas * 100) + dnas;
		dt2 = (aexp * 10000) + (mexp * 100) + dexp;
		if (!UtilBean.validarMascara(dt2, "yyyyMMdd")) {
			enviarMensagem("dexp", "DATA INVALIDA");
			return;
		}
		if (dt2 < dt1) {
			enviarMensagem("dexp", "DATA EXPEDICAO MENOR DATA NASCIMENTO");
			return;
		}
		if (dt2 > UtilBean.obtemDataCorrente()) {
			enviarMensagem("dexp", "");
			return;
		}
	}

	private void ValidarIComuex() throws Exception {
		// Consist�ncia F00I-COMUEX
		Sislct01 sislct01 = new Sislct01();
		// VOLTA DA PESQUISA
		if (UtilBean.validarMascara(iNacion, "1-5")) {
			if (iNacion == 1 || iNacion == 2) {
				sislct01.tt1 = 1; 
			}
			if (iNacion == 3 || iNacion == 4 || iNacion == 5) {
				sislct01.tt1 = 209;
			}
			sislct01.cc1 = iComuex;

			funcoes.sisnct01(sislct01.tt1, sislct01.cc1, sislct01.vt1); 
			if (sislct01.vt1.equals("@") && iNacion == 4) {
				sislct01.tt1 = 1;

				funcoes.sisnct01(sislct01.tt1, sislct01.cc1, sislct01.vt1);
				if (sislct01.vt1.equals("@")) {
					enviarMensagem(null, "");
					return;
				}
			} else {
				if (sislct01.vt1.equals("@")) {
					enviarMensagem(null, "");
					return;
				}
			}
		}
	}

	private void ValidarIUftitu() {
		// Consist�ncia F00I-UFTITU
		Sislct02 sislct02 = new Sislct02();
		// VOLTA DA PESQUISA
		if (iTitele > 0) {
			sislct02.tt2 = 9;
			sislct02.cc2 = iUftitu;

			funcoes.sisnct02(sislct02.tt2, sislct02.cc2, sislct02.vt2); 
			if (sislct02.vt2.equals("@")) {
				enviarMensagem(null, "AC AL AM AP BA CE DF ES GO MA MT MS MG PA PB PE PI PR RN RS RO RR SC SP SE TO");
				return;
			}
		}
	}

	private void ValidarINsecao() {
		// Consist�ncia F00I-NSECAO
		if (iTitele > 0 && iNsecao.trim().equals("")) {
			enviarMensagem(null, "INFORME A SECAO");
			return;
		}
	}

	private void ValidarINuzona() {
		// Consist�ncia F00I-NUZONA
		if (iTitele > 0 && iNuzona.trim().equals("")) {
			enviarMensagem(null, "INFORME A ZONA ELEITORAL");
			return;
		}
	}

	private void ValidarIRegiao() {
		// Consist�ncia F00I-REGIAO
		if (iCermil > 0 && iRegiao.trim().equals("")) {
			enviarMensagem(null, "INFORME A REGIAO MILITAR");
			return;
		}
	}

	private void ValidarIUfpcnh() {
		// Consist�ncia F00I-UFPCNH
		Sislct02 sislct02 = new Sislct02();
		// VOLTA DA PESQUISA
		if (iPrtcnh > 0) {
			sislct02.tt2 = 9;
			sislct02.cc2 = iUfpcnh;

			funcoes.sisnct02(sislct02.tt2, sislct02.cc2, sislct02.vt2); 
			if (sislct02.vt2.equals("@")) {
				enviarMensagem(null, "AC AL AM AP BA CE DF ES GO MA MT MS MG PA PB PE PI PR RN RS RO RR SC SP SE TO");
				return;
			}
		}
	}

	private void ValidarITipsan() throws Exception {
		// Consist�ncia F00I-TIPSAN
		if (!UtilBean.validarMascara(iTipsan, "0-4")) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarIFatorh() throws Exception {
		// Consist�ncia F00I-FATORH
		if (!UtilBean.validarMascara(iFatorh, "0-2")) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarIEndere() {
		// Consist�ncia F00I-ENDERE
		if (iEndere.trim().equals("")) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarINumres() {
		// Consist�ncia F00I-NUMRES
		if (iNumres.trim().equals("")) {
			enviarMensagem(null, "NUMERO DA RESIDENCIA INVALIDO");
			return;
		}
	}

	private void ValidarIBairro() {
		// Consist�ncia F00I-BAIRRO
		if (iBairro.trim().equals("")) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarIComuen() {
		// Consist�ncia F00I-COMUEN
		Sislct01 sislct01 = new Sislct01();
		// VOLTA DA PESQUISA
		sislct01.tt1 = 1;
		sislct01.cc1 = iComuen;

		funcoes.sisnct01(sislct01.tt1, sislct01.cc1, sislct01.vt1); 
		if (sislct01.vt1.equals("@")) {
			enviarMensagem(null, "");
			return;
		}
		if (!UtilBean.funcao.equals(UtilBean.ctt_ajuda)) {
			enviarMensagem(null, "TECLE PF-1 PARA CONTINUAR");
			return;
		}
	}

	public String getVersao() {
		return versao;
	}

	public void setVersao(String versao) {
		this.versao = versao;
	}

	public String getOperacao() {
		return operacao;
	}

	public void setOperacao(String operacao) {
		this.operacao = operacao;
	}

	public int getDataCorrente() {
		return dataCorrente;
	}

	public void setDataCorrente(int dataCorrente) {
		this.dataCorrente = dataCorrente;
	}

	public int getInumpos() {
		return iNumpos;
	}

	public void setInumpos(int iNumpos) {
		this.iNumpos = iNumpos;
	}

	public long getInumpro() {
		return iNumpro;
	}

	public void setInumpro(long iNumpro) {
		this.iNumpro = iNumpro;
	}

	public int getIordens() {
		return iOrdens;
	}

	public void setIordens(int iOrdens) {
		this.iOrdens = iOrdens;
	}

	public long getIregger() {
		return iRegger;
	}

	public void setIregger(long iRegger) {
		this.iRegger = iRegger;
	}

	public long getIregant() {
		return iRegant;
	}

	public void setIregant(long iRegant) {
		this.iRegant = iRegant;
	}

	public String getIufrant() {
		return iUfrant;
	}

	public void setIufrant(String iUfrant) {
		this.iUfrant = iUfrant;
	}

	public String getInomide() {
		return iNomide;
	}

	public void setInomide(String iNomide) {
		this.iNomide = iNomide;
	}

	public String getInomant() {
		return iNomant;
	}

	public void setInomant(String iNomant) {
		this.iNomant = iNomant;
	}

	public String getInompai() {
		return iNompai;
	}

	public void setInompai(String iNompai) {
		this.iNompai = iNompai;
	}

	public String getInommae() {
		return iNommae;
	}

	public void setInommae(String iNommae) {
		this.iNommae = iNommae;
	}

	public int getIgrauin() {
		return iGrauin;
	}

	public void setIgrauin(int iGrauin) {
		this.iGrauin = iGrauin;
	}

	public int getDnas() {
		return dnas;
	}

	public void setDnas(int dnas) {
		this.dnas = dnas;
	}

	public int getMnas() {
		return mnas;
	}

	public void setMnas(int mnas) {
		this.mnas = mnas;
	}

	public int getAnas() {
		return anas;
	}

	public void setAnas(int anas) {
		this.anas = anas;
	}

	public int getIcomuna() {
		return iComuna;
	}

	public void setIcomuna(int iComuna) {
		this.iComuna = iComuna;
	}

	public int getIcodsex() {
		return iCodsex;
	}

	public void setIcodsex(int iCodsex) {
		this.iCodsex = iCodsex;
	}

	public int getInacion() {
		return iNacion;
	}

	public void setInacion(int iNacion) {
		this.iNacion = iNacion;
	}

	public int getInumpor() {
		return iNumpor;
	}

	public void setInumpor(int iNumpor) {
		this.iNumpor = iNumpor;
	}

	public int getIanopor() {
		return iAnopor;
	}

	public void setIanopor(int iAnopor) {
		this.iAnopor = iAnopor;
	}

	public int getIcodpor() {
		return iCodpor;
	}

	public void setIcodpor(int iCodpor) {
		this.iCodpor = iCodpor;
	}

	public int getDnat() {
		return dnat;
	}

	public void setDnat(int dnat) {
		this.dnat = dnat;
	}

	public int getMnat() {
		return mnat;
	}

	public void setMnat(int mnat) {
		this.mnat = mnat;
	}

	public int getAnat() {
		return anat;
	}

	public void setAnat(int anat) {
		this.anat = anat;
	}

	public long getInumcpf() {
		return iNumcpf;
	}

	public void setInumcpf(long iNumcpf) {
		this.iNumcpf = iNumcpf;
	}

	public int getIestciv() {
		return iEstciv;
	}

	public void setIestciv(int iEstciv) {
		this.iEstciv = iEstciv;
	}

	public int getItipdoc() {
		return iTipdoc;
	}

	public void setItipdoc(int iTipdoc) {
		this.iTipdoc = iTipdoc;
	}

	public String getInumcer() {
		return iNumcer;
	}

	public void setInumcer(String iNumcer) {
		this.iNumcer = iNumcer;
	}

	public String getPais() {
		return pais;
	}

	public void setPais(String pais) {
		this.pais = pais;
	}

	public String getInumfol() {
		return iNumfol;
	}

	public void setInumfol(String iNumfol) {
		this.iNumfol = iNumfol;
	}

	public String getInumliv() {
		return iNumliv;
	}

	public void setInumliv(String iNumliv) {
		this.iNumliv = iNumliv;
	}

	public int getDexp() {
		return dexp;
	}

	public void setDexp(int dexp) {
		this.dexp = dexp;
	}

	public int getMexp() {
		return mexp;
	}

	public void setMexp(int mexp) {
		this.mexp = mexp;
	}

	public int getAexp() {
		return aexp;
	}

	public void setAexp(int aexp) {
		this.aexp = aexp;
	}

	public String getIvcivil() {
		return iVcivil;
	}

	public void setIvcivil(String iVcivil) {
		this.iVcivil = iVcivil;
	}

	public String getIzonaof() {
		return iZonaof;
	}

	public void setIzonaof(String iZonaof) {
		this.iZonaof = iZonaof;
	}

	public String getInomcar() {
		return iNomcar;
	}

	public void setInomcar(String iNomcar) {
		this.iNomcar = iNomcar;
	}

	public int getIcomuex() {
		return iComuex;
	}

	public void setIcomuex(int iComuex) {
		this.iComuex = iComuex;
	}

	public int getIcartra() {
		return iCartra;
	}

	public void setIcartra(int iCartra) {
		this.iCartra = iCartra;
	}

	public long getInserie() {
		return iNserie;
	}

	public void setInserie(long iNserie) {
		this.iNserie = iNserie;
	}

	public long getItitele() {
		return iTitele;
	}

	public void setItitele(long iTitele) {
		this.iTitele = iTitele;
	}

	public String getIuftitu() {
		return iUftitu;
	}

	public void setIuftitu(String iUftitu) {
		this.iUftitu = iUftitu;
	}

	public String getInsecao() {
		return iNsecao;
	}

	public void setInsecao(String iNsecao) {
		this.iNsecao = iNsecao;
	}

	public String getInuzona() {
		return iNuzona;
	}

	public void setInuzona(String iNuzona) {
		this.iNuzona = iNuzona;
	}

	public long getIcermil() {
		return iCermil;
	}

	public void setIcermil(long iCermil) {
		this.iCermil = iCermil;
	}

	public String getIregiao() {
		return iRegiao;
	}

	public void setIregiao(String iRegiao) {
		this.iRegiao = iRegiao;
	}

	public long getIprtcnh() {
		return iPrtcnh;
	}

	public void setIprtcnh(long iPrtcnh) {
		this.iPrtcnh = iPrtcnh;
	}

	public String getIufpcnh() {
		return iUfpcnh;
	}

	public void setIufpcnh(String iUfpcnh) {
		this.iUfpcnh = iUfpcnh;
	}

	public int getItipsan() {
		return iTipsan;
	}

	public void setItipsan(int iTipsan) {
		this.iTipsan = iTipsan;
	}

	public int getIfatorh() {
		return iFatorh;
	}

	public void setIfatorh(int iFatorh) {
		this.iFatorh = iFatorh;
	}

	public String getIendere() {
		return iEndere;
	}

	public void setIendere(String iEndere) {
		this.iEndere = iEndere;
	}

	public String getInumres() {
		return iNumres;
	}

	public void setInumres(String iNumres) {
		this.iNumres = iNumres;
	}

	public String getIbairro() {
		return iBairro;
	}

	public void setIbairro(String iBairro) {
		this.iBairro = iBairro;
	}

	public String getIcomple() {
		return iComple;
	}

	public void setIcomple(String iComple) {
		this.iComple = iComple;
	}

	public int getIcodcep() {
		return iCodcep;
	}

	public void setIcodcep(int iCodcep) {
		this.iCodcep = iCodcep;
	}

	public int getIcomuen() {
		return iComuen;
	}

	public void setIcomuen(int iComuen) {
		this.iComuen = iComuen;
	}

	public String getEmpresa() {
		return empresa;
	}

	public void setEmpresa(String empresa) {
		this.empresa = empresa;
	}

	public String getNomeClasse() {
		return nomeClasse;
	}

	public void setNomeClasse(String nomeClasse) {
		this.nomeClasse = nomeClasse;
	}

	public String getHoraCorrente() {
		return horaCorrente;
	}

	public void setHoraCorrente(String horaCorrente) {
		this.horaCorrente = horaCorrente;
	}

	public String getFuncao() {
		return funcao;
	}

	public void setFuncao(String funcao) {
		this.funcao = funcao;
	}

	public String getCampofocus() {
		return campofocus;
	}

	public void setCampofocus(String campofocus) {
		this.campofocus = campofocus;
	}

	public String getNavegar() {
		return navegar;
	}

	public void setNavegar(String navegar) {
		this.navegar = navegar;
	}

	public String getMensagem() {
		return mensagem;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}

	public void setMensagemSaida(String mensagem) {
		this.mensagem = mensagem;
	}

	public boolean getEnviada() {
		return this.enviada;
	}

	public void setSessao(Sessao sessao) {
		this.sessao = sessao;
	}
}
